#ifndef NORMALWIDGET_H
#define NORMALWIDGET_H

#include <QWidget>
#include "mytypes.h"
#include <QStandardItemModel>
#include <QGridLayout>
#include <QTableView>
#include <QPlainTextEdit>
#include <QTabWidget>
#include <QVBoxLayout>
#include <QSpacerItem>
#include <QMap>
#include <QSet>

namespace Ui {
class NormalWidget;
}

class NormalWidget : public QWidget
{
    Q_OBJECT

public:
    static QVector<QPair<Yzty::MODECODE,Yzty::ITEMCODE>> ShowTools;
    static QVector<QSet<int>> ToolMapItem;       //执行的功能对应的item编号

    explicit NormalWidget(QWidget *parent = nullptr);
    ~NormalWidget();

    void Init_Config(QMap<int,QVector<QPair<QString,QStringList>>>& pstruct);

    void SetCurWidget(int i);

    void Init_Ui();

    void UpdateData(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void ClearModel(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
public slots:
    void doMouseTrackTip(QModelIndex index);
private:

//    主机信息
//    硬盘信息
//    操作系统
//    身份鉴别
//    屏幕保护
//    无线通信
//    音频视频
//    开关关机

//    >USB设备检查
//    手机插拔记录
//    常规存储记录
//    无线蓝牙红外
//    其他USB设备

//    >联网记录检查
//    浏览器记录
//    软件上网记录
//    Cookies记录
//    邮件收发记录
//    终端外联状态
//    收藏夹记录

//    >终端软件检查
//    系统软件
//    镜像软件

    void UpdateHostInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateDiskInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateOsInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateUserVerifyInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateScreenProInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateWirelessInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateSoundCardInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateOpClCardInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdatePhoneLinkInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateMemoryInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateBuleTeeth(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateOtherUsb(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateWebHistory(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateSoftNetHistory(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void UpdateCookies(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateEmail(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateNetLogin(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateWebCollect(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateSystemSoft(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void UpdateMirrorSoft(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

private:
    Ui::NormalWidget *ui;
    QVector<QVector<QStandardItemModel*>> _models;
    QVector<QVector<QTableView*>>         _views;
    QVector<QVector<QPlainTextEdit*>>     _plains;
   // QVector<QVector<QTabWidget*>>         _tabws;
    QVector<QVector<QStringList>>         _model_labels;
};

#endif // NORMALWIDGET_H
